package com.service;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.service.IService;
import com.utils.PageUtils;
import com.entity.YonghuEntity;
import java.util.List;
import java.util.Map;
import com.entity.vo.YonghuVO;
import org.apache.ibatis.annotations.Param;
import com.entity.view.YonghuView;


/**
 * 用户服务接口
 *
 * 该接口定义了与用户（YonghuEntity）相关的业务操作，包括分页查询用户数据、根据条件查询用户数据等。
 * 通过实现该接口，开发者可以实现对用户信息的管理，执行增、删、改、查等操作。
 *
 * @author team10
 */
public interface YonghuService extends IService<YonghuEntity> {

	/**
	 * 分页查询用户数据
	 *
	 * @param params 查询参数，包括分页信息
	 * @return 返回分页结果，包含查询到的用户数据
	 */
	PageUtils queryPage(Map<String, Object> params);

	/**
	 * 根据条件查询用户列表（返回VO）
	 *
	 * @param wrapper 条件构造器，用于构造查询条件
	 * @return 返回查询到的用户数据列表（VO）
	 */
	List<YonghuVO> selectListVO(Wrapper<YonghuEntity> wrapper);

	/**
	 * 根据条件查询单个用户数据（返回VO）
	 *
	 * @param wrapper 条件构造器，用于构造查询条件
	 * @return 返回查询到的单个用户数据（VO）
	 */
	YonghuVO selectVO(@Param("ew") Wrapper<YonghuEntity> wrapper);

	/**
	 * 根据条件查询用户列表（返回View）
	 *
	 * @param wrapper 条件构造器，用于构造查询条件
	 * @return 返回查询到的用户数据列表（View）
	 */
	List<YonghuView> selectListView(Wrapper<YonghuEntity> wrapper);

	/**
	 * 根据条件查询单个用户数据（返回View）
	 *
	 * @param wrapper 条件构造器，用于构造查询条件
	 * @return 返回查询到的单个用户数据（View）
	 */
	YonghuView selectView(@Param("ew") Wrapper<YonghuEntity> wrapper);

	/**
	 * 分页查询用户数据，支持自定义查询条件
	 *
	 * @param params 查询参数，包括分页信息
	 * @param wrapper 条件构造器，用于构造查询条件
	 * @return 返回分页结果，包含查询到的用户数据
	 */
	PageUtils queryPage(Map<String, Object> params, Wrapper<YonghuEntity> wrapper);
}
